package com.aabte.design2.behavioral.mediator;

import lombok.Data;

/**
 * 具体中介者类可解开各组件之间相互交叉的连接关系并将其转移到中介者中
 *
 * @author Daniel
 * @version 1.0
 * @date 2020/5/3
 */
@Data
public class AuthenticationDialog implements Mediator {

    private String title;
    private CheckBox loginOrRegister;
    private TextBox loginUsername;
    private TextBox loginPassword;
    private TextBox regUsername;
    private TextBox regPassword;
    private TextBox regEmail;
    private Button okBtn;
    private Button cancelBtn;
    private CheckBox rememberMe;

    @Override
    public void notify(Component sender, String event) {

        if (sender == loginOrRegister && "check".equals(event)) {
            if (loginOrRegister.isChecked()) {
                title = "登录";
                // 1. 显示登录表单组件
                // 2. 隐藏注册表单组件
                System.out.println("显示登录表单组件 & 隐藏注册表单组件");
            } else {
                title = "注册";
                // 1. 显示注册表单组件
                // 2. 隐藏登录表单组件
                System.out.println("显示注册表单组件 & 隐藏登录表单组件");
            }
        }

        if (sender == okBtn && "click".equals(event)) {
            if (loginOrRegister.isChecked()) {
                // 尝试找到使用登录信息的用户
                if (null == loginOrRegister.getValue()) {
                    // 在登录字段上方显示错误信息
                    System.out.println("请输入用户名");
                } else {
                    System.out.println("输入的用户名: " + loginOrRegister.getValue());
                }
            } else {
                // 1. 使用注册字段中的数据创建用户账号
                // 2. 完成用户登录工作
                System.out.println("创建用户账号 || 用户登录");
            }
        }
    }
}
